home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / MW MPW Binaries 1.1.1a2 / mwcPPC / MWCIncludes / Terminals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-31  |  15.6 KB  |  447 lines  |  [TEXT/MMCC]

  1. /*
  2.     File:        Terminals.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __TERMINALS__
  13. #define __TERMINALS__
  14.  
  15. #ifndef __DIALOGS__
  16. #include <Dialogs.h>
  17. /*    #include <Windows.h>                                        */
  18. /*        #include <Quickdraw.h>                                    */
  19. /*            #include <Types.h>                                    */
  20. /*                #include <ConditionalMacros.h>                    */
  21. /*                #include <MixedMode.h>                            */
  22. /*                    #include <Traps.h>                            */
  23. /*            #include <QuickdrawText.h>                            */
  24. /*                #include <IntlResources.h>                        */
  25. /*        #include <Events.h>                                        */
  26. /*            #include <OSUtils.h>                                */
  27. /*        #include <Controls.h>                                    */
  28. /*            #include <Menus.h>                                    */
  29. /*    #include <TextEdit.h>                                        */
  30. #endif
  31.  
  32. #ifndef __CTBUTILITIES__
  33. #include <CTBUtilities.h>
  34. /*    #include <Memory.h>                                            */
  35. /*    #include <StandardFile.h>                                    */
  36. /*        #include <Files.h>                                        */
  37. /*            #include <SegLoad.h>                                */
  38. /*    #include <AppleTalk.h>                                        */
  39. #endif
  40.  
  41. #ifndef __CONNECTIONS__
  42. #include <Connections.h>
  43. #endif
  44.  
  45. enum  {
  46. /* current Terminal Manager version     */
  47.     curTMVersion                = 2,
  48. /* current Terminal Manager Environment Record version     */
  49.     curTermEnvRecVers            = 0,
  50. /* error codes    */
  51.     tmGenericError                = -1,
  52.     tmNoErr                        = 0,
  53.     tmNotSent                    = 1,
  54.     tmEnvironsChanged            = 2,
  55.     tmNotSupported                = 7,
  56.     tmNoTools                    = 8
  57. };
  58.  
  59. typedef OSErr TMErr;
  60.  
  61. enum  {
  62.     tmInvisible                    = 1 << 0,
  63.     tmSaveBeforeClear            = 1 << 1,
  64.     tmNoMenus                    = 1 << 2,
  65.     tmAutoScroll                = 1 << 3,
  66.     tmConfigChanged                = 1 << 4
  67. };
  68.  
  69. typedef unsigned long TMFlags;
  70.  
  71. enum  {
  72.     selTextNormal                = 1 << 0,
  73.     selTextBoxed                = 1 << 1,
  74.     selGraphicsMarquee            = 1 << 2,
  75.     selGraphicsLasso            = 1 << 3,
  76.     tmSearchNoDiacrit            = 1 << 8,
  77.     tmSearchNoCase                = 1 << 9
  78. };
  79.  
  80. typedef unsigned short TMSearchTypes;
  81.  
  82. typedef short TMSelTypes;
  83.  
  84. enum  {
  85.     cursorText                    = 1,
  86.     cursorGraphics                = 2
  87. };
  88.  
  89. typedef unsigned short TMCursorTypes;
  90.  
  91. enum  {
  92.     tmTextTerminal                = 1 << 0,
  93.     tmGraphicsTerminal            = 1 << 1
  94. };
  95.  
  96. typedef unsigned short TMTermTypes;
  97.  
  98. #if defined(powerc) || defined (__powerc)
  99. #pragma options align=mac68k
  100. #endif
  101. struct TermDataBlock {
  102.     TMTermTypes                    flags;
  103.     Handle                        theData;
  104.     Handle                        auxData;
  105.     long                        reserved;
  106. };
  107. #if defined(powerc) || defined(__powerc)
  108. #pragma options align=reset
  109. #endif
  110.  
  111. typedef struct TermDataBlock TermDataBlock;
  112.  
  113. typedef TermDataBlock *TermDataBlockPtr, **TermDataBlockH;
  114.  
  115. #if defined(powerc) || defined (__powerc)
  116. #pragma options align=mac68k
  117. #endif
  118. struct TermEnvironRec {
  119.     short                        version;
  120.     TMTermTypes                    termType;
  121.     short                        textRows;
  122.     short                        textCols;
  123.     Point                        cellSize;
  124.     Rect                        graphicSize;
  125.     Point                        slop;
  126.     Rect                        auxSpace;
  127. };
  128. #if defined(powerc) || defined(__powerc)
  129. #pragma options align=reset
  130. #endif
  131.  
  132. typedef struct TermEnvironRec TermEnvironRec;
  133.  
  134. typedef TermEnvironRec *TermEnvironPtr;
  135.  
  136. #if defined(powerc) || defined (__powerc)
  137. #pragma options align=mac68k
  138. #endif
  139. union TMSelection {
  140.     Rect                        selRect;
  141.     RgnHandle                    selRgnHandle;
  142. };
  143. #if defined(powerc) || defined(__powerc)
  144. #pragma options align=reset
  145. #endif
  146.  
  147. typedef union TMSelection TMSelection;
  148.  
  149. typedef struct TermRecord TermRecord, *TermPtr, **TermHandle;
  150.  
  151. typedef pascal long (*TerminalSendProcPtr)(Ptr thePtr, long theSize, long refCon, CMFlags flags);
  152.  
  153. enum {
  154.     uppTerminalSendProcInfo = kPascalStackBased
  155.          | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  156.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  157.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  158.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  159.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(CMFlags)))
  160. };
  161.  
  162. #if USESROUTINEDESCRIPTORS
  163. typedef UniversalProcPtr TerminalSendUPP;
  164.  
  165. #define CallTerminalSendProc(userRoutine, thePtr, theSize, refCon, flags)        \
  166.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalSendProcInfo, (thePtr), (theSize), (refCon), (flags))
  167. #define NewTerminalSendProc(userRoutine)        \
  168.         (TerminalSendUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSendProcInfo, GetCurrentISA())
  169. #else
  170. typedef TerminalSendProcPtr TerminalSendUPP;
  171.  
  172. #define CallTerminalSendProc(userRoutine, thePtr, theSize, refCon, flags)        \
  173.         (*(userRoutine))((thePtr), (theSize), (refCon), (flags))
  174. #define NewTerminalSendProc(userRoutine)        \
  175.         (TerminalSendUPP)(userRoutine)
  176. #endif
  177.  
  178. typedef pascal void (*TerminalBreakProcPtr)(long duration, long refCon);
  179.  
  180. enum {
  181.     uppTerminalBreakProcInfo = kPascalStackBased
  182.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  183.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  184. };
  185.  
  186. #if USESROUTINEDESCRIPTORS
  187. typedef UniversalProcPtr TerminalBreakUPP;
  188.  
  189. #define CallTerminalBreakProc(userRoutine, duration, refCon)        \
  190.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalBreakProcInfo, (duration), (refCon))
  191. #define NewTerminalBreakProc(userRoutine)        \
  192.         (TerminalBreakUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalBreakProcInfo, GetCurrentISA())
  193. #else
  194. typedef TerminalBreakProcPtr TerminalBreakUPP;
  195.  
  196. #define CallTerminalBreakProc(userRoutine, duration, refCon)        \
  197.         (*(userRoutine))((duration), (refCon))
  198. #define NewTerminalBreakProc(userRoutine)        \
  199.         (TerminalBreakUPP)(userRoutine)
  200. #endif
  201.  
  202. typedef pascal long (*TerminalCacheProcPtr)(long refCon, TermDataBlockPtr theTermData);
  203.  
  204. enum {
  205.     uppTerminalCacheProcInfo = kPascalStackBased
  206.          | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  207.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  208.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(TermDataBlockPtr)))
  209. };
  210.  
  211. #if USESROUTINEDESCRIPTORS
  212. typedef UniversalProcPtr TerminalCacheUPP;
  213.  
  214. #define CallTerminalCacheProc(userRoutine, refCon, theTermData)        \
  215.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalCacheProcInfo, (refCon), (theTermData))
  216. #define NewTerminalCacheProc(userRoutine)        \
  217.         (TerminalCacheUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalCacheProcInfo, GetCurrentISA())
  218. #else
  219. typedef TerminalCacheProcPtr TerminalCacheUPP;
  220.  
  221. #define CallTerminalCacheProc(userRoutine, refCon, theTermData)        \
  222.         (*(userRoutine))((refCon), (theTermData))
  223. #define NewTerminalCacheProc(userRoutine)        \
  224.         (TerminalCacheUPP)(userRoutine)
  225. #endif
  226.  
  227. typedef pascal void (*TerminalSearchCallBackProcPtr)(TermHandle hTerm, short refNum, Rect *foundRect);
  228.  
  229. enum {
  230.     uppTerminalSearchCallBackProcInfo = kPascalStackBased
  231.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(TermHandle)))
  232.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  233.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Rect*)))
  234. };
  235.  
  236. #if USESROUTINEDESCRIPTORS
  237. typedef UniversalProcPtr TerminalSearchCallBackUPP;
  238.  
  239. #define CallTerminalSearchCallBackProc(userRoutine, hTerm, refNum, foundRect)        \
  240.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalSearchCallBackProcInfo, (hTerm), (refNum), (foundRect))
  241. #define NewTerminalSearchCallBackProc(userRoutine)        \
  242.         (TerminalSearchCallBackUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSearchCallBackProcInfo, GetCurrentISA())
  243. #else
  244. typedef TerminalSearchCallBackProcPtr TerminalSearchCallBackUPP;
  245.  
  246. #define CallTerminalSearchCallBackProc(userRoutine, hTerm, refNum, foundRect)        \
  247.         (*(userRoutine))((hTerm), (refNum), (foundRect))
  248. #define NewTerminalSearchCallBackProc(userRoutine)        \
  249.         (TerminalSearchCallBackUPP)(userRoutine)
  250. #endif
  251.  
  252. typedef pascal Boolean (*TerminalClikLoopProcPtr)(long refCon);
  253.  
  254. enum {
  255.     uppTerminalClikLoopProcInfo = kPascalStackBased
  256.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  257.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  258. };
  259.  
  260. #if USESROUTINEDESCRIPTORS
  261. typedef UniversalProcPtr TerminalClikLoopUPP;
  262.  
  263. #define CallTerminalClikLoopProc(userRoutine, refCon)        \
  264.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalClikLoopProcInfo, (refCon))
  265. #define NewTerminalClikLoopProc(userRoutine)        \
  266.         (TerminalClikLoopUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalClikLoopProcInfo, GetCurrentISA())
  267. #else
  268. typedef TerminalClikLoopProcPtr TerminalClikLoopUPP;
  269.  
  270. #define CallTerminalClikLoopProc(userRoutine, refCon)        \
  271.         (*(userRoutine))((refCon))
  272. #define NewTerminalClikLoopProc(userRoutine)        \
  273.         (TerminalClikLoopUPP)(userRoutine)
  274. #endif
  275.  
  276. typedef pascal CMErr (*TerminalEnvironsProcPtr)(long refCon, TermEnvironRec *theEnvirons);
  277.  
  278. enum {
  279.     uppTerminalEnvironsProcInfo = kPascalStackBased
  280.          | RESULT_SIZE(SIZE_CODE(sizeof(CMErr)))
  281.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  282.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(TermEnvironRec*)))
  283. };
  284.  
  285. #if USESROUTINEDESCRIPTORS
  286. typedef UniversalProcPtr TerminalEnvironsUPP;
  287.  
  288. #define CallTerminalEnvironsProc(userRoutine, refCon, theEnvirons)        \
  289.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalEnvironsProcInfo, (refCon), (theEnvirons))
  290. #define NewTerminalEnvironsProc(userRoutine)        \
  291.         (TerminalEnvironsUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalEnvironsProcInfo, GetCurrentISA())
  292. #else
  293. typedef TerminalEnvironsProcPtr TerminalEnvironsUPP;
  294.  
  295. #define CallTerminalEnvironsProc(userRoutine, refCon, theEnvirons)        \
  296.         (*(userRoutine))((refCon), (theEnvirons))
  297. #define NewTerminalEnvironsProc(userRoutine)        \
  298.         (TerminalEnvironsUPP)(userRoutine)
  299. #endif
  300.  
  301. typedef pascal void (*TerminalChooseIdleProcPtr)(void);
  302.  
  303. enum {
  304.     uppTerminalChooseIdleProcInfo = kPascalStackBased
  305. };
  306.  
  307. #if USESROUTINEDESCRIPTORS
  308. typedef UniversalProcPtr TerminalChooseIdleUPP;
  309.  
  310. #define CallTerminalChooseIdleProc(userRoutine)        \
  311.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalChooseIdleProcInfo)
  312. #define NewTerminalChooseIdleProc(userRoutine)        \
  313.         (TerminalChooseIdleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalChooseIdleProcInfo, GetCurrentISA())
  314. #else
  315. typedef TerminalChooseIdleProcPtr TerminalChooseIdleUPP;
  316.  
  317. #define CallTerminalChooseIdleProc(userRoutine)        \
  318.         (*(userRoutine))()
  319. #define NewTerminalChooseIdleProc(userRoutine)        \
  320.         (TerminalChooseIdleUPP)(userRoutine)
  321. #endif
  322.  
  323. typedef pascal long (*TerminalToolDefProcPtr)(TermHandle hTerm, short msg, long p1, long p2, long p3);
  324.  
  325. enum {
  326.     uppTerminalToolDefProcInfo = kPascalStackBased
  327.          | RESULT_SIZE(SIZE_CODE(sizeof(long)))
  328.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(TermHandle)))
  329.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  330.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  331.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  332.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
  333. };
  334.  
  335. #if USESROUTINEDESCRIPTORS
  336. typedef UniversalProcPtr TerminalToolDefUPP;
  337.  
  338. #define CallTerminalToolDefProc(userRoutine, hTerm, msg, p1, p2, p3)        \
  339.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTerminalToolDefProcInfo, (hTerm), (msg), (p1), (p2), (p3))
  340. #define NewTerminalToolDefProc(userRoutine)        \
  341.         (TerminalToolDefUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalToolDefProcInfo, GetCurrentISA())
  342. #else
  343. typedef TerminalToolDefProcPtr TerminalToolDefUPP;
  344.  
  345. #define CallTerminalToolDefProc(userRoutine, hTerm, msg, p1, p2, p3)        \
  346.         (*(userRoutine))((hTerm), (msg), (p1), (p2), (p3))
  347. #define NewTerminalToolDefProc(userRoutine)        \
  348.         (TerminalToolDefUPP)(userRoutine)
  349. #endif
  350.  
  351.  
  352. /*    TMTermTypes     */
  353.  
  354. #if defined(powerc) || defined (__powerc)
  355. #pragma options align=mac68k
  356. #endif
  357. struct TermRecord {
  358.     short                        procID;
  359.     TMFlags                        flags;
  360.     TMErr                        errCode;
  361.     long                        refCon;
  362.     long                        userData;
  363.     TerminalToolDefUPP            defProc;
  364.     Ptr                            config;
  365.     Ptr                            oldConfig;
  366.     TerminalEnvironsUPP            environsProc;
  367.     long                        reserved1;
  368.     long                        reserved2;
  369.     Ptr                            tmPrivate;
  370.     TerminalSendUPP                sendProc;
  371.     TerminalBreakUPP            breakProc;
  372.     TerminalCacheUPP            cacheProc;
  373.     TerminalClikLoopUPP            clikLoop;
  374.     WindowPtr                    owner;
  375.     Rect                        termRect;
  376.     Rect                        viewRect;
  377.     Rect                        visRect;
  378.     long                        lastIdle;
  379.     TMSelection                    selection;
  380.     TMSelTypes                    selType;
  381.     long                        mluField;
  382. };
  383. #if defined(powerc) || defined(__powerc)
  384. #pragma options align=reset
  385. #endif
  386.  
  387. #ifdef __cplusplus
  388. extern "C" {
  389. #endif
  390.  
  391. extern pascal TMErr InitTM(void);
  392. extern pascal Handle TMGetVersion(TermHandle hTerm);
  393. extern pascal short TMGetTMVersion(void);
  394. extern pascal TermHandle TMNew(const Rect *termRect, const Rect *viewRect, TMFlags flags, short procID, WindowPtr owner, TerminalSendUPP sendProc, TerminalCacheUPP cacheProc, TerminalBreakUPP breakProc, TerminalClikLoopUPP clikLoop, TerminalEnvironsUPP environsProc, long refCon, long userData);
  395. extern pascal void TMDispose(TermHandle hTerm);
  396. extern pascal void TMKey(TermHandle hTerm, const EventRecord *theEvent);
  397. extern pascal void TMUpdate(TermHandle hTerm, RgnHandle visRgn);
  398. extern pascal void TMPaint(TermHandle hTerm, const TermDataBlock *theTermData, const Rect *theRect);
  399. extern pascal void TMActivate(TermHandle hTerm, Boolean activate);
  400. extern pascal void TMResume(TermHandle hTerm, Boolean resume);
  401. extern pascal void TMClick(TermHandle hTerm, const EventRecord *theEvent);
  402. extern pascal void TMIdle(TermHandle hTerm);
  403. extern pascal long TMStream(TermHandle hTerm, void *theBuffer, long theLength, CMFlags flags);
  404. extern pascal Boolean TMMenu(TermHandle hTerm, short menuID, short item);
  405. extern pascal void TMReset(TermHandle hTerm);
  406. extern pascal void TMClear(TermHandle hTerm);
  407. extern pascal void TMResize(TermHandle hTerm, const Rect *newViewRect);
  408. extern pascal long TMGetSelect(TermHandle hTerm, Handle theData, ResType *theType);
  409. extern pascal void TMGetLine(TermHandle hTerm, short lineNo, TermDataBlock *theTermData);
  410. extern pascal void TMSetSelection(TermHandle hTerm, const TMSelection *theSelection, TMSelTypes selType);
  411. extern pascal void TMScroll(TermHandle hTerm, short dh, short dv);
  412. extern pascal Boolean TMValidate(TermHandle hTerm);
  413. extern pascal void TMDefault(Ptr *theConfig, short procID, Boolean allocate);
  414. extern pascal Handle TMSetupPreflight(short procID, long *magicCookie);
  415. extern pascal void TMSetupSetup(short procID, const void *theConfig, short count, DialogPtr theDialog, long *magicCookie);
  416. extern pascal Boolean TMSetupFilter(short procID, const void *theConfig, short count, DialogPtr theDialog, EventRecord *theEvent, short *theItem, long *magicCookie);
  417. extern pascal void TMSetupItem(short procID, const void *theConfig, short count, DialogPtr theDialog, short *theItem, long *magicCookie);
  418. extern pascal void TMSetupXCleanup(short procID, const void *theConfig, short count, DialogPtr theDialog, Boolean OKed, long *magicCookie);
  419. extern pascal void TMSetupPostflight(short procID);
  420. extern pascal Ptr TMGetConfig(TermHandle hTerm);
  421. extern pascal short TMSetConfig(TermHandle hTerm, const void *thePtr);
  422. extern pascal OSErr TMIntlToEnglish(TermHandle hTerm, const void *inputPtr, Ptr *outputPtr, short language);
  423. extern pascal OSErr TMEnglishToIntl(TermHandle hTerm, const void *inputPtr, Ptr *outputPtr, short language);
  424. extern pascal void TMGetToolName(short id, Str255 name);
  425. extern pascal short TMGetProcID(ConstStr255Param name);
  426. extern pascal void TMSetRefCon(TermHandle hTerm, long refCon);
  427. extern pascal long TMGetRefCon(TermHandle hTerm);
  428. extern pascal void TMSetUserData(TermHandle hTerm, long userData);
  429. extern pascal long TMGetUserData(TermHandle hTerm);
  430. extern pascal short TMAddSearch(TermHandle hTerm, ConstStr255Param theString, const Rect *where, TMSearchTypes searchType, TerminalSearchCallBackUPP callBack);
  431. extern pascal void TMRemoveSearch(TermHandle hTerm, short refnum);
  432. extern pascal void TMClearSearch(TermHandle hTerm);
  433. extern pascal Point TMGetCursor(TermHandle hTerm, TMCursorTypes cursType);
  434. extern pascal TMErr TMGetTermEnvirons(TermHandle hTerm, TermEnvironRec *theEnvirons);
  435. extern pascal short TMChoose(TermHandle *hTerm, Point where, TerminalChooseIdleUPP idleProc);
  436. extern pascal void TMEvent(TermHandle hTerm, const EventRecord *theEvent);
  437. extern pascal Boolean TMDoTermKey(TermHandle hTerm, ConstStr255Param theKey);
  438. extern pascal short TMCountTermKeys(TermHandle hTerm);
  439. extern pascal void TMGetIndTermKey(TermHandle hTerm, short id, Str255 theKey);
  440. extern pascal void TMGetErrorString(TermHandle hTerm, short id, Str255 errMsg);
  441. #ifdef __cplusplus
  442. }
  443. #endif
  444.  
  445. #endif
  446.  
  447.